#ifndef DSDESIGN_EVENT_H
#define DSDESIGN_EVENT_H

#include "LinkedQueueStack.h"

// 定义事件结构体
typedef struct Event {
    int time;  // 事件发生时间
    int type;  // 事件类型，例如到达银行、离开银行等//type为1则是到达事件,0是离开事件
    int no;   //客户编号
    struct CustNode *custNode;//指向当前事件的的发生者
    struct Event* next;  // 指向下一个事件节点
}Event,*LinkedList;
Status SetRandom(int random[] ,int scan[]);
Status SetTime(CustNode* p ,long arrtime,long durtime,double amount);
//void initEventTable() ;
Event* addEvent(LinkedList  &L,int time, int type,CustNode* node) ;
Status processEvents(LinkedList &L,LQueue &queue,Event *event) ;//执行processEvent函数前先重新生成随机数
void printList();
Status checkNode(LQueue &Q);
Status checkQueue();
Status initEventLinkedList(LinkedList &L);
void simulate(int scan[],double total,int closetime) ;
void DestroyList(LinkedList &list);
void Destroy();
void average();
void totalTime();
void totalCustomer();
void printCustomer();
#endif //DSDESIGN_EVENT_H



